const nilValue = (o) => {
    return typeof o === "undefined" || o === null;
};
// 是不是 空字符串
const emptyString = (o) => {
    if (nilValue(o)) {
        return true;
    }
    if (typeof o !== "string") {
        return true;
    }
    let v = o.trim();
    if (v.length <= 0) {
        return true;
    }
    return false;
};
const emptyValue = (o) => {
    let v = nilValue(o);
    if (v) {
        return true;
    }
    if (typeof o === "string") {
        return o.trim().length === 0;
    } else if (Array.isArray(o)) {
        return o.length === 0;
    } else if (typeof o === "number") {
        return false;
    } else if (typeof o === "object") {
        return Object.keys(o).length === 0;
    }
    return false;
};

function getParam(value, params) {
    if (nilValue(value)) {
        return null;
    }
    if (typeof value !== "object") {
        return null;
    }
    // 没有参数校验
    if (nilValue(params)) {
        return null;
    }
    // 判断参数是否都有
    let paramArr = [];
    if (typeof params === "string") {
        paramArr = [params];
    } else if (Array.isArray(params)) {
        paramArr = params;
    } else {
        return null;
    }
    // 检查各个参数
    for (let i = 0; i < paramArr.length; i++) {
        let p = paramArr[i];
        if (!nilValue(value[p])) {
            return value[p];
        }
    }
    return null;
}

module.exports = {
    nilValue,
    emptyValue,
    getParam,
    emptyString,
};
